// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20230308

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/json"
)

// Predefined struct for user
type ChangeMigratingTopicToNextStageRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// List of topic names. topic name can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the api [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in data type.
	TopicNameList []*string `json:"TopicNameList,omitnil,omitempty" name:"TopicNameList"`

	// Namespace list. It is valid only for 4.x clusters and has a one-to-one relationship with TopicNameList. The list can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	NamespaceList []*string `json:"NamespaceList,omitnil,omitempty" name:"NamespaceList"`
}

type ChangeMigratingTopicToNextStageRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// List of topic names. topic name can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the api [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in data type.
	TopicNameList []*string `json:"TopicNameList,omitnil,omitempty" name:"TopicNameList"`

	// Namespace list. It is valid only for 4.x clusters and has a one-to-one relationship with TopicNameList. The list can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	NamespaceList []*string `json:"NamespaceList,omitnil,omitempty" name:"NamespaceList"`
}

func (r *ChangeMigratingTopicToNextStageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ChangeMigratingTopicToNextStageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "TopicNameList")
	delete(f, "NamespaceList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ChangeMigratingTopicToNextStageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ChangeMigratingTopicToNextStageResponseParams struct {
	// Result list of migration topic status modification.
	Results []*TopicStageChangeResult `json:"Results,omitnil,omitempty" name:"Results"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ChangeMigratingTopicToNextStageResponse struct {
	*tchttp.BaseResponse
	Response *ChangeMigratingTopicToNextStageResponseParams `json:"Response"`
}

func (r *ChangeMigratingTopicToNextStageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ChangeMigratingTopicToNextStageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type ClientSubscriptionInfo struct {
	// Client ID
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Client ip address.
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// Specifies the subscribed topic.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Subscription expression.
	SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"`

	// Specifies the subscription method.
	ExpressionType *string `json:"ExpressionType,omitnil,omitempty" name:"ExpressionType"`
}

type ConsumerClient struct {
	// Client ID
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Client address.
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// Client SDK language
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	// Client SDK version
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Client consumption heap
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// Consumer client type. valid values:.
	// 
	// -Specifies the grpc protocol.
	// -remoting protocol.
	// -http protocol.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ChannelProtocol *string `json:"ChannelProtocol,omitnil,omitempty" name:"ChannelProtocol"`
}

// Predefined struct for user
type CreateConsumerGroupRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Maximum number of retries. Value range: 0 to 1000.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Whether to enable consumption.
	ConsumeEnable *bool `json:"ConsumeEnable,omitnil,omitempty" name:"ConsumeEnable"`

	// Specifies whether to use ordered delivery. valid values: true.
	// Concurrent delivery: false.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

type CreateConsumerGroupRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Maximum number of retries. Value range: 0 to 1000.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Whether to enable consumption.
	ConsumeEnable *bool `json:"ConsumeEnable,omitnil,omitempty" name:"ConsumeEnable"`

	// Specifies whether to use ordered delivery. valid values: true.
	// Concurrent delivery: false.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

func (r *CreateConsumerGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateConsumerGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "MaxRetryTimes")
	delete(f, "ConsumeEnable")
	delete(f, "ConsumeMessageOrderly")
	delete(f, "ConsumerGroup")
	delete(f, "Remark")
	delete(f, "TagList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateConsumerGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateConsumerGroupResponseParams struct {
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the consumer group name.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateConsumerGroupResponse struct {
	*tchttp.BaseResponse
	Response *CreateConsumerGroupResponseParams `json:"Response"`
}

func (r *CreateConsumerGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateConsumerGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInstanceRequestParams struct {
	// Instance type. valid values are as follows:.
	// 
	// -EXPERIMENT: specifies the trial version.
	// 
	// - BASIC: BASIC edition.
	// 
	// -PRO edition.
	// 
	// -PLATINUM: platinum version.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Cluster name. values cannot be empty. 3-64 characters, only comprised of digits, letters, "-", and "_".
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Product specification. It can be obtained from the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// Specifies the VPC information bound to the cluster.
	VpcList []*VpcInfo `json:"VpcList,omitnil,omitempty" name:"VpcList"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Whether public network access is enabled. the default value of false means not enabled.
	EnablePublic *bool `json:"EnablePublic,omitnil,omitempty" name:"EnablePublic"`

	// Whether the public network is billed by traffic. the default value is false, which indicates that the public network is not billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`

	// Public network bandwidth (unit: mbps). the default value is 0. if public network access is enabled, this field must be a positive integer above 0.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network access allowlist. if left blank, it means deny all IP access.
	IpRules []*IpRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Message retention time (unit: hr). value range refers to the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	// 
	// -Default value: DefaultRetention parameter.
	// -Minimum value: specifies the RetentionLowerLimit parameter.
	// -Specifies the maximum value of the RetentionUpperLimit parameter.
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Payment mode (0: postpaid; 1: prepaid). the default value is 0.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether the prepaid cluster is automatically renewed (0: no auto-renewal; 1: auto-renewal). default value: 0.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Specifies the purchase duration (unit: month) for a prepaid cluster. value range: 1–60. default value: 1.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Specifies the maximum number of topics that can be created. obtained from the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1) (https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU).
	// 
	// -Default value and minimum value: specifies the TopicNumLimit parameter.
	// -Maximum value of TopicNumUpperLimit parameter.
	MaxTopicNum *int64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Deployment AZ list. obtain from the [ZoneInfo](https://www.tencentcloud.comom/document/api/1596/77932?from_cn_redirect=1#ZoneInfo) data structure returned by the api [DescribeZones](https://www.tencentcloud.comom/document/product/1596/77929?from_cn_redirect=1).
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`
}

type CreateInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance type. valid values are as follows:.
	// 
	// -EXPERIMENT: specifies the trial version.
	// 
	// - BASIC: BASIC edition.
	// 
	// -PRO edition.
	// 
	// -PLATINUM: platinum version.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Cluster name. values cannot be empty. 3-64 characters, only comprised of digits, letters, "-", and "_".
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Product specification. It can be obtained from the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// Specifies the VPC information bound to the cluster.
	VpcList []*VpcInfo `json:"VpcList,omitnil,omitempty" name:"VpcList"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Whether public network access is enabled. the default value of false means not enabled.
	EnablePublic *bool `json:"EnablePublic,omitnil,omitempty" name:"EnablePublic"`

	// Whether the public network is billed by traffic. the default value is false, which indicates that the public network is not billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`

	// Public network bandwidth (unit: mbps). the default value is 0. if public network access is enabled, this field must be a positive integer above 0.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network access allowlist. if left blank, it means deny all IP access.
	IpRules []*IpRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Message retention time (unit: hr). value range refers to the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	// 
	// -Default value: DefaultRetention parameter.
	// -Minimum value: specifies the RetentionLowerLimit parameter.
	// -Specifies the maximum value of the RetentionUpperLimit parameter.
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Payment mode (0: postpaid; 1: prepaid). the default value is 0.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether the prepaid cluster is automatically renewed (0: no auto-renewal; 1: auto-renewal). default value: 0.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Specifies the purchase duration (unit: month) for a prepaid cluster. value range: 1–60. default value: 1.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Specifies the maximum number of topics that can be created. obtained from the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1) (https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU).
	// 
	// -Default value and minimum value: specifies the TopicNumLimit parameter.
	// -Maximum value of TopicNumUpperLimit parameter.
	MaxTopicNum *int64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Deployment AZ list. obtain from the [ZoneInfo](https://www.tencentcloud.comom/document/api/1596/77932?from_cn_redirect=1#ZoneInfo) data structure returned by the api [DescribeZones](https://www.tencentcloud.comom/document/product/1596/77929?from_cn_redirect=1).
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`
}

func (r *CreateInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceType")
	delete(f, "Name")
	delete(f, "SkuCode")
	delete(f, "VpcList")
	delete(f, "Remark")
	delete(f, "TagList")
	delete(f, "EnablePublic")
	delete(f, "BillingFlow")
	delete(f, "Bandwidth")
	delete(f, "IpRules")
	delete(f, "MessageRetention")
	delete(f, "PayMode")
	delete(f, "RenewFlag")
	delete(f, "TimeSpan")
	delete(f, "MaxTopicNum")
	delete(f, "ZoneIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInstanceResponseParams struct {
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateInstanceResponse struct {
	*tchttp.BaseResponse
	Response *CreateInstanceResponseParams `json:"Response"`
}

func (r *CreateInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRoleRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It cannot be left blank. Only digits, uppercase and lowercase letters, and separators (_ -) are supported. The name cannot exceed 32 characters.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// Whether to enable production permission
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Whether to enable consumption permission
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies the types of permissions. the default is to authorize by Cluster (Cluster: at the Cluster level; TopicAndGroup: topic and consumer group level).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`

	// Permission configuration in the topic/group dimension. It is required when the permission type parameter is set to TopicAndGroup.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

type CreateRoleRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It cannot be left blank. Only digits, uppercase and lowercase letters, and separators (_ -) are supported. The name cannot exceed 32 characters.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// Whether to enable production permission
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Whether to enable consumption permission
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies the types of permissions. the default is to authorize by Cluster (Cluster: at the Cluster level; TopicAndGroup: topic and consumer group level).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`

	// Permission configuration in the topic/group dimension. It is required when the permission type parameter is set to TopicAndGroup.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

func (r *CreateRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Role")
	delete(f, "PermWrite")
	delete(f, "PermRead")
	delete(f, "Remark")
	delete(f, "PermType")
	delete(f, "DetailedPerms")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRoleResponseParams struct {
	// Role name.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRoleResponse struct {
	*tchttp.BaseResponse
	Response *CreateRoleResponseParams `json:"Response"`
}

func (r *CreateRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteConsumerGroupRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

type DeleteConsumerGroupRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

func (r *DeleteConsumerGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteConsumerGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ConsumerGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteConsumerGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteConsumerGroupResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteConsumerGroupResponse struct {
	*tchttp.BaseResponse
	Response *DeleteConsumerGroupResponseParams `json:"Response"`
}

func (r *DeleteConsumerGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteConsumerGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteInstanceRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DeleteInstanceRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DeleteInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteInstanceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DeleteInstanceResponseParams `json:"Response"`
}

func (r *DeleteInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRoleRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It can be obtained from [RoleItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#RoleItem) returned by the API [DescribeRoleList](https://www.tencentcloud.comom/document/api/1493/98862?from_cn_redirect=1) or from the console.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`
}

type DeleteRoleRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It can be obtained from [RoleItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#RoleItem) returned by the API [DescribeRoleList](https://www.tencentcloud.comom/document/api/1493/98862?from_cn_redirect=1) or from the console.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`
}

func (r *DeleteRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Role")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRoleResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRoleResponseParams `json:"Response"`
}

func (r *DeleteRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteSmoothMigrationTaskRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DeleteSmoothMigrationTaskRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DeleteSmoothMigrationTaskRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteSmoothMigrationTaskRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteSmoothMigrationTaskRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteSmoothMigrationTaskResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteSmoothMigrationTaskResponse struct {
	*tchttp.BaseResponse
	Response *DeleteSmoothMigrationTaskResponseParams `json:"Response"`
}

func (r *DeleteSmoothMigrationTaskResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteSmoothMigrationTaskResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteTopicRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

type DeleteTopicRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

func (r *DeleteTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteTopicResponse struct {
	*tchttp.BaseResponse
	Response *DeleteTopicResponseParams `json:"Response"`
}

func (r *DeleteTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerClientListRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeConsumerClientListRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeConsumerClientListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerClientListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ConsumerGroup")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeConsumerClientListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerClientListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Consumer client
	Data []*ConsumerClient `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeConsumerClientListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeConsumerClientListResponseParams `json:"Response"`
}

func (r *DescribeConsumerClientListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerClientListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerClientRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Client ID. It can be obtained from the output parameters of [ConsumerClient](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumerClient) of the API [DescribeConsumerClientList](https://www.tencentcloud.comom/document/api/1493/120140?from_cn_redirect=1).
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

type DescribeConsumerClientRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Client ID. It can be obtained from the output parameters of [ConsumerClient](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumerClient) of the API [DescribeConsumerClientList](https://www.tencentcloud.comom/document/api/1493/120140?from_cn_redirect=1).
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

func (r *DescribeConsumerClientRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerClientRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ClientId")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ConsumerGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeConsumerClientRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerClientResponseParams struct {
	// Client details
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Client *ConsumerClient `json:"Client,omitnil,omitempty" name:"Client"`

	// Topic consumption information
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicList []*TopicConsumeStats `json:"TopicList,omitnil,omitempty" name:"TopicList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeConsumerClientResponse struct {
	*tchttp.BaseResponse
	Response *DescribeConsumerClientResponseParams `json:"Response"`
}

func (r *DescribeConsumerClientResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerClientResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerGroupRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

type DescribeConsumerGroupRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

func (r *DescribeConsumerGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ConsumerGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeConsumerGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerGroupResponseParams struct {
	// Number of online consumers.
	ConsumerNum *int64 `json:"ConsumerNum,omitnil,omitempty" name:"ConsumerNum"`

	// TPS
	Tps *int64 `json:"Tps,omitnil,omitempty" name:"Tps"`

	// Specifies the number of accumulated messages.
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// Consumption type. valid values as follows:.
	// 
	// -PULL: specifies the pull consumption type.
	// -PUSH: specifies the push consumption type.
	// -POP: specifies the pop consumption type.
	ConsumeType *string `json:"ConsumeType,omitnil,omitempty" name:"ConsumeType"`

	// Creation time. **It is a Unix timestamp (ms).**
	CreatedTime *int64 `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Specifies whether to use ordered delivery. valid values: true.
	// Concurrent delivery: false.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Whether to enable consumption.
	ConsumeEnable *bool `json:"ConsumeEnable,omitnil,omitempty" name:"ConsumeEnable"`

	// Maximum number of retries.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies the consumption mode.
	// BROADCASTING.
	// CLUSTERING cluster mode.
	MessageModel *string `json:"MessageModel,omitnil,omitempty" name:"MessageModel"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeConsumerGroupResponse struct {
	*tchttp.BaseResponse
	Response *DescribeConsumerGroupResponseParams `json:"Response"`
}

func (r *DescribeConsumerGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerLagRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Namespace. It is required for 4.x clusters. The namespace can be obtained from [RocketMQNamespace](https://www.tencentcloud.comom/document/api/1179/46089?from_cn_redirect=1#RocketMQNamespace) returned by the API [DescribeRocketMQNamespaces](https://www.tencentcloud.comom/document/api/1179/63419?from_cn_redirect=1) or from the console.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Subscribed topic. If it is not left blank, query heaped messages of consumer groups subscribing to the topic. The topic can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	SubscribeTopic *string `json:"SubscribeTopic,omitnil,omitempty" name:"SubscribeTopic"`
}

type DescribeConsumerLagRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Namespace. It is required for 4.x clusters. The namespace can be obtained from [RocketMQNamespace](https://www.tencentcloud.comom/document/api/1179/46089?from_cn_redirect=1#RocketMQNamespace) returned by the API [DescribeRocketMQNamespaces](https://www.tencentcloud.comom/document/api/1179/63419?from_cn_redirect=1) or from the console.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Subscribed topic. If it is not left blank, query heaped messages of consumer groups subscribing to the topic. The topic can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	SubscribeTopic *string `json:"SubscribeTopic,omitnil,omitempty" name:"SubscribeTopic"`
}

func (r *DescribeConsumerLagRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerLagRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ConsumerGroup")
	delete(f, "Namespace")
	delete(f, "SubscribeTopic")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeConsumerLagRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeConsumerLagResponseParams struct {
	// Number of heaped messages.
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeConsumerLagResponse struct {
	*tchttp.BaseResponse
	Response *DescribeConsumerLagResponseParams `json:"Response"`
}

func (r *DescribeConsumerLagResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeConsumerLagResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeFusionInstanceListRequestParams struct {
	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

type DescribeFusionInstanceListRequest struct {
	*tchttp.BaseRequest
	
	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

func (r *DescribeFusionInstanceListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeFusionInstanceListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	delete(f, "TagFilters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeFusionInstanceListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeFusionInstanceListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance list
	Data []*FusionInstanceItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeFusionInstanceListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeFusionInstanceListResponseParams `json:"Response"`
}

func (r *DescribeFusionInstanceListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeFusionInstanceListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInstanceListRequestParams struct {
	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeInstanceListRequest struct {
	*tchttp.BaseRequest
	
	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeInstanceListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeInstanceListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Filters")
	delete(f, "TagFilters")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInstanceListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInstanceListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance list
	Data []*InstanceItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeInstanceListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInstanceListResponseParams `json:"Response"`
}

func (r *DescribeInstanceListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeInstanceListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInstanceRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeInstanceRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInstanceResponseParams struct {
	// Instance type.
	// Specifies the EXPERIMENT trial version.
	// BASIC version.
	// PRO edition.
	// PLATINUM. platinum version.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Number of topics
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Maximum number of topics per instance
	TopicNumLimit *int64 `json:"TopicNumLimit,omitnil,omitempty" name:"TopicNumLimit"`

	// Number of consumer groups
	GroupNum *int64 `json:"GroupNum,omitnil,omitempty" name:"GroupNum"`

	// Maximum number of consumer groups per instance
	GroupNumLimit *int64 `json:"GroupNumLimit,omitnil,omitempty" name:"GroupNumLimit"`

	// Message retention time, in hours
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Maximum adjustable message retention time, in hours
	RetentionUpperLimit *int64 `json:"RetentionUpperLimit,omitnil,omitempty" name:"RetentionUpperLimit"`

	// Minimum adjustable message retention time, in hours
	RetentionLowerLimit *int64 `json:"RetentionLowerLimit,omitnil,omitempty" name:"RetentionLowerLimit"`

	// TPS throttle value
	TpsLimit *int64 `json:"TpsLimit,omitnil,omitempty" name:"TpsLimit"`

	// Elastic TPS throttle value
	ScaledTpsLimit *int64 `json:"ScaledTpsLimit,omitnil,omitempty" name:"ScaledTpsLimit"`

	// Maximum delayed message time, in hours
	MaxMessageDelay *int64 `json:"MaxMessageDelay,omitnil,omitempty" name:"MaxMessageDelay"`

	// Creation time. **It is a Unix timestamp (ms).**
	CreatedTime *int64 `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Message sending and receiving ratio
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`

	// Tag.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Access point list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndpointList []*Endpoint `json:"EndpointList,omitnil,omitempty" name:"EndpointList"`

	// Maximum number of topic queues
	TopicQueueNumUpperLimit *int64 `json:"TopicQueueNumUpperLimit,omitnil,omitempty" name:"TopicQueueNumUpperLimit"`

	// Minimum queue count for topic
	TopicQueueNumLowerLimit *int64 `json:"TopicQueueNumLowerLimit,omitnil,omitempty" name:"TopicQueueNumLowerLimit"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Instance status. valid values are as follows:.
	// 
	// - RUNNING: RUNNING.
	// -ABNORMAL: indicates an abnormal status.
	// -OVERDUE: isolated.
	// -DESTROYED: specifies the terminated status.
	// -CREATING: creating.
	// -MODIFYING.
	// -CREATE_FAILURE: creation failed.
	// -MODIFY_FAILURE: configuration adjustment failure.
	// -DELETING: deleting.
	InstanceStatus *string `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// Instance specification.
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// Billing mode. valid enumeration values are as follows:.
	// 
	// - POSTPAID: POSTPAID pay-as-you-go billing.
	// - PREPAID: PREPAID annual and monthly.
	PayMode *string `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether to enable elastic TPS.
	ScaledTpsEnabled *bool `json:"ScaledTpsEnabled,omitnil,omitempty" name:"ScaledTpsEnabled"`

	// Specifies whether the prepaid cluster is automatically renewed. valid values are as follows:.
	// 
	// - 0: no automatic renewal.
	// - 1: specifies automatic renewal.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Expiration time. **It is a Unix timestamp (ms).**
	ExpiryTime *int64 `json:"ExpiryTime,omitnil,omitempty" name:"ExpiryTime"`

	// Specifies the limit on the number of roles.
	RoleNumLimit *int64 `json:"RoleNumLimit,omitnil,omitempty" name:"RoleNumLimit"`

	// Whether ACL is enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"`

	// Number of topics within the free quota.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNumLowerLimit *int64 `json:"TopicNumLowerLimit,omitnil,omitempty" name:"TopicNumLowerLimit"`

	// Maximum settable number of topics.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNumUpperLimit *int64 `json:"TopicNumUpperLimit,omitnil,omitempty" name:"TopicNumUpperLimit"`

	// AZ list. See [ZoneInfo](https://www.tencentcloud.comom/document/api/1596/77932?from_cn_redirect=1#ZoneInfo) returned by the API [DescribeZones](https://www.tencentcloud.comom/document/product/1596/77929?from_cn_redirect=1) in Data Type.
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Number of proxy nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NodeCount *int64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Proxy scheduling details.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneScheduledList []*ZoneScheduledItem `json:"ZoneScheduledList,omitnil,omitempty" name:"ZoneScheduledList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInstanceResponseParams `json:"Response"`
}

func (r *DescribeInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageListRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Start time for querying messages. **It is a Unix timestamp (ms).**
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time for querying messages. **It is a Unix timestamp (ms).**
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Query identifier. For the first query, input a null string. If the query results involve pagination, use the TaskRequestId value in the previous request response as the value of this input parameter for requesting data on the next page.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Message ID. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from the workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message key. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from workload logs.
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Query the last N messages. The value of N cannot exceed 1024. By default, -1 indicates other query conditions.
	RecentMessageNum *int64 `json:"RecentMessageNum,omitnil,omitempty" name:"RecentMessageNum"`

	// Whether to query dead letter messages. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Message tag. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from workload logs.
	Tag *string `json:"Tag,omitnil,omitempty" name:"Tag"`
}

type DescribeMessageListRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Start time for querying messages. **It is a Unix timestamp (ms).**
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time for querying messages. **It is a Unix timestamp (ms).**
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Query identifier. For the first query, input a null string. If the query results involve pagination, use the TaskRequestId value in the previous request response as the value of this input parameter for requesting data on the next page.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Message ID. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from the workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message key. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from workload logs.
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Query the last N messages. The value of N cannot exceed 1024. By default, -1 indicates other query conditions.
	RecentMessageNum *int64 `json:"RecentMessageNum,omitnil,omitempty" name:"RecentMessageNum"`

	// Whether to query dead letter messages. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Message tag. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from workload logs.
	Tag *string `json:"Tag,omitnil,omitempty" name:"Tag"`
}

func (r *DescribeMessageListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "TaskRequestId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ConsumerGroup")
	delete(f, "MsgId")
	delete(f, "MsgKey")
	delete(f, "RecentMessageNum")
	delete(f, "QueryDeadLetterMessage")
	delete(f, "Tag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMessageListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Message record list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data []*MessageItem `json:"Data,omitnil,omitempty" name:"Data"`

	// One-time query ID
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMessageListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMessageListResponseParams `json:"Response"`
}

func (r *DescribeMessageListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Message ID. It can be obtained from the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether the message is dead letter message. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Whether the message is delayed. Default value: false.
	QueryDelayMessage *bool `json:"QueryDelayMessage,omitnil,omitempty" name:"QueryDelayMessage"`
}

type DescribeMessageRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Message ID. It can be obtained from the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether the message is dead letter message. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Whether the message is delayed. Default value: false.
	QueryDelayMessage *bool `json:"QueryDelayMessage,omitnil,omitempty" name:"QueryDelayMessage"`
}

func (r *DescribeMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "MsgId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "QueryDeadLetterMessage")
	delete(f, "QueryDelayMessage")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageResponseParams struct {
	// Message body.
	Body *string `json:"Body,omitnil,omitempty" name:"Body"`

	// Detailed parameters.
	Properties *string `json:"Properties,omitnil,omitempty" name:"Properties"`

	// Production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Message ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"`

	// Producer address.
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`

	// List of message consumption situations.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageTracks []*MessageTrackItem `json:"MessageTracks,omitnil,omitempty" name:"MessageTracks"`

	// Topic name
	ShowTopicName *string `json:"ShowTopicName,omitnil,omitempty" name:"ShowTopicName"`

	// Total number of items in the message consumption status list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageTracksCount *int64 `json:"MessageTracksCount,omitnil,omitempty" name:"MessageTracksCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMessageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMessageResponseParams `json:"Response"`
}

func (r *DescribeMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageTraceRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Message ID. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from the workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Whether the message is dead letter message. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Whether the message is delayed. Default value: false.
	QueryDelayMessage *bool `json:"QueryDelayMessage,omitnil,omitempty" name:"QueryDelayMessage"`
}

type DescribeMessageTraceRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Message ID. It can be obtained from [MessageItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MessageItem) returned by the API [DescribeMessageList](https://www.tencentcloud.comom/document/api/1493/114593?from_cn_redirect=1) or from the workload logs.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Whether the message is dead letter message. Default value: false.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Whether the message is delayed. Default value: false.
	QueryDelayMessage *bool `json:"QueryDelayMessage,omitnil,omitempty" name:"QueryDelayMessage"`
}

func (r *DescribeMessageTraceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageTraceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "MsgId")
	delete(f, "QueryDeadLetterMessage")
	delete(f, "QueryDelayMessage")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMessageTraceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMessageTraceResponseParams struct {
	// Topic name
	ShowTopicName *string `json:"ShowTopicName,omitnil,omitempty" name:"ShowTopicName"`

	// Track details
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data []*MessageTraceItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMessageTraceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMessageTraceResponseParams `json:"Response"`
}

func (r *DescribeMessageTraceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMessageTraceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingGroupStatsRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the consumer group name. it can be obtained from [SourceClusterGroupConfig](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SourceClusterGroupConfig) returned by the api [DescribeSourceClusterGroupList](https://www.tencentcloud.comom/document/api/1493/118006?from_cn_redirect=1) or in the console.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// Namespace. it is valid only when migrated to 4.x clusters. the namespace can be obtained from [SourceClusterGroupConfig](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SourceClusterGroupConfig) returned by the api [DescribeSourceClusterGroupList](https://www.tencentcloud.comom/document/api/1493/118006?from_cn_redirect=1) or from the console.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type DescribeMigratingGroupStatsRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the consumer group name. it can be obtained from [SourceClusterGroupConfig](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SourceClusterGroupConfig) returned by the api [DescribeSourceClusterGroupList](https://www.tencentcloud.comom/document/api/1493/118006?from_cn_redirect=1) or in the console.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// Namespace. it is valid only when migrated to 4.x clusters. the namespace can be obtained from [SourceClusterGroupConfig](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SourceClusterGroupConfig) returned by the api [DescribeSourceClusterGroupList](https://www.tencentcloud.comom/document/api/1493/118006?from_cn_redirect=1) or from the console.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

func (r *DescribeMigratingGroupStatsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingGroupStatsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "GroupName")
	delete(f, "Namespace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMigratingGroupStatsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingGroupStatsResponseParams struct {
	// Source cluster consumer group accumulation.
	SourceConsumeLag *int64 `json:"SourceConsumeLag,omitnil,omitempty" name:"SourceConsumeLag"`

	// Target cluster consumer group accumulation.
	TargetConsumeLag *int64 `json:"TargetConsumeLag,omitnil,omitempty" name:"TargetConsumeLag"`

	// Source cluster connection client list.
	SourceConsumerClients []*ConsumerClient `json:"SourceConsumerClients,omitnil,omitempty" name:"SourceConsumerClients"`

	// Target cluster connection client list.
	TargetConsumerClients []*ConsumerClient `json:"TargetConsumerClients,omitnil,omitempty" name:"TargetConsumerClients"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMigratingGroupStatsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMigratingGroupStatsResponseParams `json:"Response"`
}

func (r *DescribeMigratingGroupStatsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingGroupStatsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingTopicListRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeMigratingTopicListRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeMigratingTopicListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingTopicListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMigratingTopicListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingTopicListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Topic list.
	MigrateTopics []*MigratingTopic `json:"MigrateTopics,omitnil,omitempty" name:"MigrateTopics"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMigratingTopicListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMigratingTopicListResponseParams `json:"Response"`
}

func (r *DescribeMigratingTopicListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingTopicListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingTopicStatsRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type DescribeMigratingTopicStatsRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

func (r *DescribeMigratingTopicStatsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingTopicStatsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "TopicName")
	delete(f, "Namespace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMigratingTopicStatsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigratingTopicStatsResponseParams struct {
	// Number of consumers in the source cluster.
	SourceClusterConsumerCount *int64 `json:"SourceClusterConsumerCount,omitnil,omitempty" name:"SourceClusterConsumerCount"`

	// Number of consumers in the target cluster.
	TargetClusterConsumerCount *int64 `json:"TargetClusterConsumerCount,omitnil,omitempty" name:"TargetClusterConsumerCount"`

	// Source cluster consumer group list.
	SourceClusterConsumerGroups []*string `json:"SourceClusterConsumerGroups,omitnil,omitempty" name:"SourceClusterConsumerGroups"`

	// Target cluster consumer group list.
	TargetClusterConsumerGroups []*string `json:"TargetClusterConsumerGroups,omitnil,omitempty" name:"TargetClusterConsumerGroups"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMigratingTopicStatsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMigratingTopicStatsResponseParams `json:"Response"`
}

func (r *DescribeMigratingTopicStatsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigratingTopicStatsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigrationTaskListRequestParams struct {
	// Query criteria list
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Query start position
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query result limit count
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeMigrationTaskListRequest struct {
	*tchttp.BaseRequest
	
	// Query criteria list
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Query start position
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query result limit count
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeMigrationTaskListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigrationTaskListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMigrationTaskListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMigrationTaskListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Migration Task List
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tasks []*MigrationTaskItem `json:"Tasks,omitnil,omitempty" name:"Tasks"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMigrationTaskListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMigrationTaskListResponseParams `json:"Response"`
}

func (r *DescribeMigrationTaskListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMigrationTaskListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeProducerListRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeProducerListRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeProducerListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeProducerListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeProducerListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeProducerListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Producer information list.
	ProducerList []*ProducerInfo `json:"ProducerList,omitnil,omitempty" name:"ProducerList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeProducerListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeProducerListResponseParams `json:"Response"`
}

func (r *DescribeProducerListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeProducerListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeProductSKUsRequestParams struct {

}

type DescribeProductSKUsRequest struct {
	*tchttp.BaseRequest
	
}

func (r *DescribeProductSKUsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeProductSKUsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeProductSKUsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeProductSKUsResponseParams struct {
	// Product configuration information
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data []*ProductSKU `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeProductSKUsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeProductSKUsResponseParams `json:"Response"`
}

func (r *DescribeProductSKUsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeProductSKUsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRoleListRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRoleListRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRoleListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRoleListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRoleListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRoleListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Role information list
	Data []*RoleItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRoleListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRoleListResponseParams `json:"Response"`
}

func (r *DescribeRoleListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRoleListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSmoothMigrationTaskListRequestParams struct {
	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeSmoothMigrationTaskListRequest struct {
	*tchttp.BaseRequest
	
	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeSmoothMigrationTaskListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSmoothMigrationTaskListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSmoothMigrationTaskListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSmoothMigrationTaskListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Task list.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data []*SmoothMigrationTaskItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeSmoothMigrationTaskListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSmoothMigrationTaskListResponseParams `json:"Response"`
}

func (r *DescribeSmoothMigrationTaskListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSmoothMigrationTaskListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSourceClusterGroupListRequestParams struct {
	// Specifies the task ID. it can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the api [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeSourceClusterGroupListRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the task ID. it can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the api [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeSourceClusterGroupListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSourceClusterGroupListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSourceClusterGroupListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSourceClusterGroupListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of consumption group configurations.
	Groups []*SourceClusterGroupConfig `json:"Groups,omitnil,omitempty" name:"Groups"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeSourceClusterGroupListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSourceClusterGroupListResponseParams `json:"Response"`
}

func (r *DescribeSourceClusterGroupListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSourceClusterGroupListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicListByGroupRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeTopicListByGroupRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeTopicListByGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicListByGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ConsumerGroup")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicListByGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicListByGroupResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Topic list.
	Data []*SubscriptionData `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTopicListByGroupResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTopicListByGroupResponseParams `json:"Response"`
}

func (r *DescribeTopicListByGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicListByGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicListRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Queries subscribed topics by consumer group.
	FromGroup *string `json:"FromGroup,omitnil,omitempty" name:"FromGroup"`
}

type DescribeTopicListRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Queries subscribed topics by consumer group.
	FromGroup *string `json:"FromGroup,omitnil,omitempty" name:"FromGroup"`
}

func (r *DescribeTopicListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "TagFilters")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "FromGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicListResponseParams struct {
	// Total query count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Topic list.
	Data []*TopicItem `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTopicListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTopicListResponseParams `json:"Response"`
}

func (r *DescribeTopicListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeTopicRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Filtering condition list. See the description of the API using this parameter for the usage method.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Starting position of the query. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Maximum number of queried results. Default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicResponseParams struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic type.
	// UNSPECIFIED: not specified.
	// NORMAL: normal message.
	// FIFO: sequential message.
	// DELAY: delayed message.
	// TRANSACTION: transaction message.
	TopicType *string `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Creation time. **It is a Unix timestamp (ms).**
	CreatedTime *int64 `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Last write time. **It is a Unix timestamp (ms).**
	LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`

	// Number of Subscriptions
	SubscriptionCount *int64 `json:"SubscriptionCount,omitnil,omitempty" name:"SubscriptionCount"`

	// Subscribe to the relationship list.
	SubscriptionData []*SubscriptionData `json:"SubscriptionData,omitnil,omitempty" name:"SubscriptionData"`

	// Message retention period. Unit: hour.
	MsgTTL *int64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTopicResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTopicResponseParams `json:"Response"`
}

func (r *DescribeTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type DetailedRolePerm struct {
	// Resources corresponding to permissions.
	// Specifies the topic name, which can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the api [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	// Specifies the consumer group name, which can be obtained from the api response of DescribeConsumerGroupList (https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or the console.
	Resource *string `json:"Resource,omitnil,omitempty" name:"Resource"`

	// Whether to enable production permission
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Whether to enable consumption permission
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Authorize resource type (Topic: theme; Group: consumption Group).
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Resource remark.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

// Predefined struct for user
type DoHealthCheckOnMigratingTopicRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Whether to ignore the current check.
	IgnoreCheck *bool `json:"IgnoreCheck,omitnil,omitempty" name:"IgnoreCheck"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type DoHealthCheckOnMigratingTopicRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Whether to ignore the current check.
	IgnoreCheck *bool `json:"IgnoreCheck,omitnil,omitempty" name:"IgnoreCheck"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

func (r *DoHealthCheckOnMigratingTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DoHealthCheckOnMigratingTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "TopicName")
	delete(f, "IgnoreCheck")
	delete(f, "Namespace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DoHealthCheckOnMigratingTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DoHealthCheckOnMigratingTopicResponseParams struct {
	// Whether to Pass		
	Passed *bool `json:"Passed,omitnil,omitempty" name:"Passed"`

	// Error information returned by health check.
	// NotChecked indicates the check is not executed. 
	// Unknown error. 
	// TopicNotImported. specifies the topic is not imported.
	// TopicNotExistsInSourceCluster specifies the topic does not exist in the source cluster. 
	// Topic does not exist in the target cluster. 
	// ConsumerConnectedOnTarget specifies whether consumer connections exist on the target cluster. 
	// SourceTopicHasNewMessagesIn5Minutes indicates that new messages were written to the source cluster topic in the last 5 minutes. 
	// TargetTopicHasNewMessagesIn5Minutes specifies whether new messages were written to the target cluster topic in the last 5 minutes. 
	// SourceTopicHasNoMessagesIn5Minutes specifies no new messages were written to the source cluster in the last 5 minutes. 
	// TargetTopicHasNoMessagesIn5Minutes specifies that no new messages were written to the source cluster in the last 5 minutes. 
	// Inconsistent number of subscription groups. 
	// SourceTopicHasUnconsumedMessages specifies that unconsumed messages exist in the source cluster topic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Reason *string `json:"Reason,omitnil,omitempty" name:"Reason"`

	// List of error information returned by health check.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ReasonList []*string `json:"ReasonList,omitnil,omitempty" name:"ReasonList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DoHealthCheckOnMigratingTopicResponse struct {
	*tchttp.BaseResponse
	Response *DoHealthCheckOnMigratingTopicResponseParams `json:"Response"`
}

func (r *DoHealthCheckOnMigratingTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DoHealthCheckOnMigratingTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Endpoint struct {
	// Access point type, with the enumerated values as follows:.
	// 
	// - VPC: specifies the VPC network.
	// 
	// -PUBLIC: public network.
	// 
	// -INTERNAL: specifies the support network.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Status.
	// OPEN: indicates to start or activate a function.
	// CLOSE: indicates the closed state.
	// PROCESSING: operation in progress.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Payment type, only public network.
	// PREPAID: annual/monthly package.
	// Pay-As-You-Go.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PayMode *string `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Access point address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndpointUrl *string `json:"EndpointUrl,omitnil,omitempty" name:"EndpointUrl"`

	// VPC ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Specifies the subnet ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Public network bandwidth, in Mbps
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network access rules
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	IpRules []*IpRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Whether the public network is billed by traffic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`
}

type Filter struct {
	// Filter condition parameter name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Filter criterion value
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

type FusionInstanceItem struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance version.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Instance type.
	// Trial version.
	// BASIC version.
	// PRO, professional edition.
	// PLATINUM edition.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Instance status.
	// RUNNING. specifies the running status.
	// MAINTAINING.
	// ABNORMAL.
	// OVERDUE. specifies the state of arrears.
	// `DESTROYED`: `deleted`.
	// CREATING.
	// MODIFYING.
	// CREATE_FAILURE. specifies that the creation failed.
	// MODIFY_FAILURE. indicates a configuration adjustment failure.
	// Valid values: DELETING. indicates that the resource is being deleted.
	InstanceStatus *string `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// Maximum number of instance topics
	TopicNumLimit *int64 `json:"TopicNumLimit,omitnil,omitempty" name:"TopicNumLimit"`

	// Maximum number of instance consumer groups
	GroupNumLimit *int64 `json:"GroupNumLimit,omitnil,omitempty" name:"GroupNumLimit"`

	// Billing mode. valid enumeration values are as follows:.
	// 
	// -POSTPAID: pay-as-you-go.
	// 
	// - PREPAID: monthly subscription.
	PayMode *string `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Expiration time. **It is a Unix timestamp (ms).**
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpiryTime *int64 `json:"ExpiryTime,omitnil,omitempty" name:"ExpiryTime"`

	// Remarks
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of topics
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Number of consumer groups
	GroupNum *int64 `json:"GroupNum,omitnil,omitempty" name:"GroupNum"`

	// Tag list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Specifies the product specification.
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// TPS throttle value
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TpsLimit *int64 `json:"TpsLimit,omitnil,omitempty" name:"TpsLimit"`

	// Elastic TPS throttle value
	ScaledTpsLimit *int64 `json:"ScaledTpsLimit,omitnil,omitempty" name:"ScaledTpsLimit"`

	// Message retention time, in hours
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Maximum delayed message duration, in hours
	MaxMessageDelay *int64 `json:"MaxMessageDelay,omitnil,omitempty" name:"MaxMessageDelay"`

	// Specifies whether the prepaid cluster is automatically renewed. valid values are as follows:.
	// 
	// - 0: no automatic renewal.
	// - 1: specifies automatic renewal.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Data unique to version 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceItemExtraInfo *InstanceItemExtraInfo `json:"InstanceItemExtraInfo,omitnil,omitempty" name:"InstanceItemExtraInfo"`

	// Expected termination time. **It is a Unix timestamp (ms).**
	// Note: This field may return null, indicating that no valid values can be obtained.
	DestroyTime *int64 `json:"DestroyTime,omitnil,omitempty" name:"DestroyTime"`

	// AZ list. See [ZoneInfo](https://www.tencentcloud.comom/document/api/1596/77932?from_cn_redirect=1#ZoneInfo) returned by the API [DescribeZones](https://www.tencentcloud.comom/document/product/1596/77929?from_cn_redirect=1) in Data Type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`

	// Instance creation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Elastic TPS switch.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ScaledTpsEnabled *bool `json:"ScaledTpsEnabled,omitnil,omitempty" name:"ScaledTpsEnabled"`
}

type InstanceItem struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance version.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Instance type.
	// Trial version.
	// BASIC version.
	// PRO, professional edition.
	// PLATINUM edition.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Instance status.
	// RUNNING. specifies the running status.
	// MAINTAINING.
	// ABNORMAL.
	// OVERDUE. specifies the state of arrears.
	// `DESTROYED`: deleted.
	// CREATING.
	// MODIFYING.
	// CREATE_FAILURE. specifies that the creation failed.
	// MODIFY_FAILURE. indicates a configuration adjustment failure.
	// DELETING.
	InstanceStatus *string `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// Maximum number of instance topics
	TopicNumLimit *int64 `json:"TopicNumLimit,omitnil,omitempty" name:"TopicNumLimit"`

	// Maximum number of instance consumer groups
	GroupNumLimit *int64 `json:"GroupNumLimit,omitnil,omitempty" name:"GroupNumLimit"`

	// Billing mode. valid enumeration values are as follows:.
	// 
	// -POSTPAID: pay-as-you-go.
	// 
	// - PREPAID: monthly subscription.
	PayMode *string `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Expiration timestamp. **It is a Unix timestamp (ms).**
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpiryTime *int64 `json:"ExpiryTime,omitnil,omitempty" name:"ExpiryTime"`

	// Remarks
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of topics
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Number of consumer groups
	GroupNum *int64 `json:"GroupNum,omitnil,omitempty" name:"GroupNum"`

	// Tag list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Specifies the product specification.
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// TPS throttle value
	TpsLimit *int64 `json:"TpsLimit,omitnil,omitempty" name:"TpsLimit"`

	// Elastic TPS throttle value
	ScaledTpsLimit *int64 `json:"ScaledTpsLimit,omitnil,omitempty" name:"ScaledTpsLimit"`

	// Message retention time, in hours
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Maximum delayed message duration, in hours
	MaxMessageDelay *int64 `json:"MaxMessageDelay,omitnil,omitempty" name:"MaxMessageDelay"`

	// Whether automatic renewal is enabled. This parameter is valid only for prepaid clusters. 0: automatic renewal disabled; 1: automatic renewal enabled.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`
}

type InstanceItemExtraInfo struct {
	// Whether it is a vip.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsVip *bool `json:"IsVip,omitnil,omitempty" name:"IsVip"`

	// Specifies the dedicated cluster status of version 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	VipInstanceStatus *int64 `json:"VipInstanceStatus,omitnil,omitempty" name:"VipInstanceStatus"`

	// Specifies the peak bandwidth of the dedicated cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxBandWidth *int64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`

	// Exclusive cluster specification.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Specifies the quantity of exclusive cluster nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NodeCount *int64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Specifies the maximum storage of the dedicated cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxStorage *int64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// Specifies the maximum retention time of the dedicated cluster. the unit is hour.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxRetention *int64 `json:"MaxRetention,omitnil,omitempty" name:"MaxRetention"`

	// Special project cluster maximum retention time, unit: hr.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MinRetention *int64 `json:"MinRetention,omitnil,omitempty" name:"MinRetention"`

	// Status of 4.0 shared cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceStatus *int64 `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// Whether it is frozen.
	IsFrozen *bool `json:"IsFrozen,omitnil,omitempty" name:"IsFrozen"`
}

type IpRule struct {
	// Specifies the IP address.
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// Whether the IP address is allowed. Default value: false, indicating that the IP address is denied.
	Allow *bool `json:"Allow,omitnil,omitempty" name:"Allow"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type MessageItem struct {
	// Message ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message tag
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags *string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Message key.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Keys *string `json:"Keys,omitnil,omitempty" name:"Keys"`

	// Client address.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`

	// Message Sending Time	
	// 	
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Dead-letter resend count	
	// 	
	// Note: This field may return null, indicating that no valid values can be obtained.
	DeadLetterResendTimes *int64 `json:"DeadLetterResendTimes,omitnil,omitempty" name:"DeadLetterResendTimes"`

	// Dead Letter Resend Success Count
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	DeadLetterResendSuccessTimes *int64 `json:"DeadLetterResendSuccessTimes,omitnil,omitempty" name:"DeadLetterResendSuccessTimes"`
}

type MessageTraceItem struct {
	// Message handling phase. valid values are as follows:.
	// 
	// -Produces messages.
	// 
	// -Persists message storage.
	// 
	// -Consumes messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Stage *string `json:"Stage,omitnil,omitempty" name:"Stage"`

	// Track details
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data *string `json:"Data,omitnil,omitempty" name:"Data"`
}

type MessageTrackItem struct {
	// Specifies the consumer group name.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Consumption status. CONSUMED: Consumed CONSUMED_BUT_FILTERED: Filtered NOT_CONSUME: Not consumed ENTER_RETRY: Enter retry queue. ENTER_DLQ: Enter dead letter queue. UNKNOWN: Consumption status unknown
	ConsumeStatus *string `json:"ConsumeStatus,omitnil,omitempty" name:"ConsumeStatus"`

	// Track type
	TrackType *string `json:"TrackType,omitnil,omitempty" name:"TrackType"`

	// Exception information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExceptionDesc *string `json:"ExceptionDesc,omitnil,omitempty" name:"ExceptionDesc"`
}

type MigratingTopic struct {
	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Migration status. 
	// S_RW_D_NA source cluster read/write.
	// S_RW_D_R specifies read and write permissions for the source cluster and read permissions for the target cluster.
	// S_RW_D_RW specifies read-write for the source cluster and read-write for the target cluster.
	// SRDRW specifies source cluster read and destination cluster read/write.
	// S_NA_D_RW specifies the read-write target cluster.
	MigrationStatus *string `json:"MigrationStatus,omitnil,omitempty" name:"MigrationStatus"`

	// Specifies whether the health check is completed.	
	HealthCheckPassed *bool `json:"HealthCheckPassed,omitnil,omitempty" name:"HealthCheckPassed"`

	// Error information returned by the last health check is valid only when HealthCheckPassed is false. NotChecked: check not executed. Unknown: Unknown error. TopicNotImported: topic not imported. TopicNotExistsInSourceCluster: topic does not exist in the source cluster. TopicNotExistsInTargetCluster: topic does not exist in the target cluster. ConsumerConnectedOnTarget: consumer connections exist on the target cluster. SourceTopicHasNewMessagesIn5Minutes: new messages were written to the source cluster topic in the last 5 Minutes. TargetTopicHasNewMessagesIn5Minutes: new messages were written to the target cluster topic in the last 5 Minutes. SourceTopicHasNoMessagesIn5Minutes: no new messages were written to the source cluster in the last 5 Minutes. TargetTopicHasNoMessagesIn5Minutes: no new messages were written to the target cluster in the last 5 Minutes. ConsumerGroupCountNotMatch: inconsistent number of subscription groups. SourceTopicHasUnconsumedMessages: unconsumed messages exist in the source cluster topic.
	HealthCheckError *string `json:"HealthCheckError,omitnil,omitempty" name:"HealthCheckError"`

	// Namespace. specifies that it is only valid for 4.x clusters.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Namespace of 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NamespaceV4 *string `json:"NamespaceV4,omitnil,omitempty" name:"NamespaceV4"`

	// Topic name for version 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNameV4 *string `json:"TopicNameV4,omitnil,omitempty" name:"TopicNameV4"`

	// Complete namespace for 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FullNamespaceV4 *string `json:"FullNamespaceV4,omitnil,omitempty" name:"FullNamespaceV4"`

	// Error list returned from the last health check.
	HealthCheckErrorList []*string `json:"HealthCheckErrorList,omitnil,omitempty" name:"HealthCheckErrorList"`
}

type MigrationTaskItem struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// 0 - not specified (existing).
	// Metadata import.
	Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Total number of topics.
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Total Number of Consumer Groups
	GroupNum *int64 `json:"GroupNum,omitnil,omitempty" name:"GroupNum"`

	// Task status. 0: migrating; 1: migration successful; 2: migration completed, with only part of the data migrated.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Creation time.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

// Predefined struct for user
type ModifyConsumerGroupRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Whether to enable consumption.
	ConsumeEnable *bool `json:"ConsumeEnable,omitnil,omitempty" name:"ConsumeEnable"`

	// Specifies whether to use ordered delivery. valid values: true.
	// Concurrent delivery: false.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Maximum number of retries. Value range: 0 to 1000.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type ModifyConsumerGroupRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Whether to enable consumption.
	ConsumeEnable *bool `json:"ConsumeEnable,omitnil,omitempty" name:"ConsumeEnable"`

	// Specifies whether to use ordered delivery. valid values: true.
	// Concurrent delivery: false.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Maximum number of retries. Value range: 0 to 1000.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

func (r *ModifyConsumerGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyConsumerGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "ConsumerGroup")
	delete(f, "ConsumeEnable")
	delete(f, "ConsumeMessageOrderly")
	delete(f, "MaxRetryTimes")
	delete(f, "Remark")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyConsumerGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyConsumerGroupResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyConsumerGroupResponse struct {
	*tchttp.BaseResponse
	Response *ModifyConsumerGroupResponseParams `json:"Response"`
}

func (r *ModifyConsumerGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyConsumerGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInstanceEndpointRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Access point type.
	// PUBLIC network.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Public network bandwidth, in Mbps
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network security group information
	IpRules []*IpRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Whether the public network is billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`
}

type ModifyInstanceEndpointRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Access point type.
	// PUBLIC network.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Public network bandwidth, in Mbps
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network security group information
	IpRules []*IpRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Whether the public network is billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`
}

func (r *ModifyInstanceEndpointRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyInstanceEndpointRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Type")
	delete(f, "Bandwidth")
	delete(f, "IpRules")
	delete(f, "BillingFlow")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInstanceEndpointRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInstanceEndpointResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyInstanceEndpointResponse struct {
	*tchttp.BaseResponse
	Response *ModifyInstanceEndpointResponseParams `json:"Response"`
}

func (r *ModifyInstanceEndpointResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyInstanceEndpointResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInstanceRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name. It cannot be left blank. It can contain 3 to 64 characters consisting of only digits, letters, hyphens (-), and underscores (_).
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message sending and receiving ratio
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`

	// Product specification. It can be obtained from the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// Message retention time (unit: hr). value range refers to the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	// 
	// -Default value: DefaultRetention parameter.
	// -Minimum value: specifies the RetentionLowerLimit parameter.
	// -Specifies the maximum value of the RetentionUpperLimit parameter.
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Whether to enable elastic TPS.
	ScaledTpsEnabled *bool `json:"ScaledTpsEnabled,omitnil,omitempty" name:"ScaledTpsEnabled"`

	// Whether ACL is enabled.
	AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"`

	// The maximum number of topics that can be created. value ranges from...to... refer to the ProductSKU output parameter in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1) (https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU).
	// 
	// -Minimum value and default value: TopicNumLimit parameter.
	// -Maximum value of TopicNumUpperLimit parameter.
	MaxTopicNum *int64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Number of topics not included in the free quota. For the free quota, see the TopicNumLimit parameter in the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	ExtraTopicNum *string `json:"ExtraTopicNum,omitnil,omitempty" name:"ExtraTopicNum"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

type ModifyInstanceRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name. It cannot be left blank. It can contain 3 to 64 characters consisting of only digits, letters, hyphens (-), and underscores (_).
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message sending and receiving ratio
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`

	// Product specification. It can be obtained from the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// Message retention time (unit: hr). value range refers to the ProductSKU response parameters structure in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	// 
	// -Default value: DefaultRetention parameter.
	// -Minimum value: specifies the RetentionLowerLimit parameter.
	// -Specifies the maximum value of the RetentionUpperLimit parameter.
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Whether to enable elastic TPS.
	ScaledTpsEnabled *bool `json:"ScaledTpsEnabled,omitnil,omitempty" name:"ScaledTpsEnabled"`

	// Whether ACL is enabled.
	AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"`

	// The maximum number of topics that can be created. value ranges from...to... refer to the ProductSKU output parameter in the DescribeProductSKUs api (https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1) (https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU).
	// 
	// -Minimum value and default value: TopicNumLimit parameter.
	// -Maximum value of TopicNumUpperLimit parameter.
	MaxTopicNum *int64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Number of topics not included in the free quota. For the free quota, see the TopicNumLimit parameter in the output parameters of [ProductSKU](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ProductSKU) of the API [DescribeProductSKUs](https://www.tencentcloud.comom/document/api/1493/107676?from_cn_redirect=1).
	ExtraTopicNum *string `json:"ExtraTopicNum,omitnil,omitempty" name:"ExtraTopicNum"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

func (r *ModifyInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Name")
	delete(f, "Remark")
	delete(f, "SendReceiveRatio")
	delete(f, "SkuCode")
	delete(f, "MessageRetention")
	delete(f, "ScaledTpsEnabled")
	delete(f, "AclEnabled")
	delete(f, "MaxTopicNum")
	delete(f, "ExtraTopicNum")
	delete(f, "EnableDeletionProtection")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInstanceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyInstanceResponse struct {
	*tchttp.BaseResponse
	Response *ModifyInstanceResponseParams `json:"Response"`
}

func (r *ModifyInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRoleRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It can be obtained from [RoleItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#RoleItem) returned by the API [DescribeRoleList](https://www.tencentcloud.comom/document/api/1493/98862?from_cn_redirect=1) or from the console.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// Whether to enable consumption.
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Whether to enable production
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Specifies the types of permissions. the default is to authorize by Cluster (Cluster: at the Cluster level; TopicAndGroup: topic and consumer group dimension).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Permission configuration in the topic/group dimension. It is required when the permission type parameter is set to TopicAndGroup.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

type ModifyRoleRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Role name. It can be obtained from [RoleItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#RoleItem) returned by the API [DescribeRoleList](https://www.tencentcloud.comom/document/api/1493/98862?from_cn_redirect=1) or from the console.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// Whether to enable consumption.
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Whether to enable production
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Specifies the types of permissions. the default is to authorize by Cluster (Cluster: at the Cluster level; TopicAndGroup: topic and consumer group dimension).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Permission configuration in the topic/group dimension. It is required when the permission type parameter is set to TopicAndGroup.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

func (r *ModifyRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Role")
	delete(f, "PermRead")
	delete(f, "PermWrite")
	delete(f, "PermType")
	delete(f, "Remark")
	delete(f, "DetailedPerms")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRoleResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRoleResponseParams `json:"Response"`
}

func (r *ModifyRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyTopicRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Number of queues. Value range: 3 to 16.
	QueueNum *int64 `json:"QueueNum,omitnil,omitempty" name:"QueueNum"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention period (unit: hour).
	MsgTTL *int64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`
}

type ModifyTopicRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Number of queues. Value range: 3 to 16.
	QueueNum *int64 `json:"QueueNum,omitnil,omitempty" name:"QueueNum"`

	// Remarks. Up to 128 characters are allowed.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention period (unit: hour).
	MsgTTL *int64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`
}

func (r *ModifyTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "QueueNum")
	delete(f, "Remark")
	delete(f, "MsgTTL")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyTopicResponse struct {
	*tchttp.BaseResponse
	Response *ModifyTopicResponseParams `json:"Response"`
}

func (r *ModifyTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type PriceTag struct {
	// Price name. Enumeration values: tps: basic price of TPS; stepTps: TPS step size.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Step size corresponding to the billing item.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Step *int64 `json:"Step,omitnil,omitempty" name:"Step"`
}

type ProducerInfo struct {
	// Client ID	
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Client IP.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientIp *string `json:"ClientIp,omitnil,omitempty" name:"ClientIp"`

	// Client language. 
	// - JAVA((byte) 0)
	// - CPP((byte) 1) 
	// - DOTNET((byte) 2) 
	// - PYTHON((byte) 3)
	// - DELPHI((byte) 4)
	// - ERLANG((byte) 5)
	// - RUBY((byte) 6)
	// - OTHER((byte) 7)
	// - HTTP((byte) 8)
	// - GO((byte) 9)
	// - PHP((byte) 10)
	// - OMS((byte) 11)
	// Note: This field may return null, indicating that no valid values can be obtained.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	// Client version.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Last production time, **Unix timestamp (seconds)**.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTimestamp *uint64 `json:"LastUpdateTimestamp,omitnil,omitempty" name:"LastUpdateTimestamp"`

	// Producer client protocol type. valid values: the following.
	// 
	// -Specifies the grpc protocol.
	// -remoting protocol.
	// -http protocol.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ChannelProtocol *string `json:"ChannelProtocol,omitnil,omitempty" name:"ChannelProtocol"`
}

type ProductSKU struct {
	// Specifies the product type.
	// Trial version.
	// BASIC version.
	// PRO, professional edition.
	// PLATINUM edition.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Specification code
	SkuCode *string `json:"SkuCode,omitnil,omitempty" name:"SkuCode"`

	// TPS limit
	TpsLimit *int64 `json:"TpsLimit,omitnil,omitempty" name:"TpsLimit"`

	// Elastic TPS upper limit
	ScaledTpsLimit *int64 `json:"ScaledTpsLimit,omitnil,omitempty" name:"ScaledTpsLimit"`

	// Default maximum number of topics.
	TopicNumLimit *int64 `json:"TopicNumLimit,omitnil,omitempty" name:"TopicNumLimit"`

	// Maximum number of consumer groups
	GroupNumLimit *int64 `json:"GroupNumLimit,omitnil,omitempty" name:"GroupNumLimit"`

	// Default message retention time, in hours
	DefaultRetention *int64 `json:"DefaultRetention,omitnil,omitempty" name:"DefaultRetention"`

	// Adjustable maximum message retention time, in hours
	RetentionUpperLimit *int64 `json:"RetentionUpperLimit,omitnil,omitempty" name:"RetentionUpperLimit"`

	// Adjustable minimum message retention time, in hours
	RetentionLowerLimit *int64 `json:"RetentionLowerLimit,omitnil,omitempty" name:"RetentionLowerLimit"`

	// Maximum delayed message duration, in hours
	MaxMessageDelay *int64 `json:"MaxMessageDelay,omitnil,omitempty" name:"MaxMessageDelay"`

	// Whether it is purchasable
	OnSale *bool `json:"OnSale,omitnil,omitempty" name:"OnSale"`

	// Billing item information
	PriceTags []*PriceTag `json:"PriceTags,omitnil,omitempty" name:"PriceTags"`

	// Default maximum number of topics.
	TopicNumUpperLimit *int64 `json:"TopicNumUpperLimit,omitnil,omitempty" name:"TopicNumUpperLimit"`
}

// Predefined struct for user
type RemoveMigratingTopicRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type RemoveMigratingTopicRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

func (r *RemoveMigratingTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveMigratingTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "TopicName")
	delete(f, "Namespace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RemoveMigratingTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RemoveMigratingTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RemoveMigratingTopicResponse struct {
	*tchttp.BaseResponse
	Response *RemoveMigratingTopicResponseParams `json:"Response"`
}

func (r *RemoveMigratingTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveMigratingTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResendDeadLetterMessageRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of dead letter message ids.
	MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

type ResendDeadLetterMessageRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of dead letter message ids.
	MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

func (r *ResendDeadLetterMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResendDeadLetterMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "MessageIds")
	delete(f, "ConsumerGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResendDeadLetterMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResendDeadLetterMessageResponseParams struct {
	// Specifies the result of resending a message.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResendResult *bool `json:"ResendResult,omitnil,omitempty" name:"ResendResult"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ResendDeadLetterMessageResponse struct {
	*tchttp.BaseResponse
	Response *ResendDeadLetterMessageResponseParams `json:"Response"`
}

func (r *ResendDeadLetterMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResendDeadLetterMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetConsumerGroupOffsetRequestParams struct {
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Timestamp (unit: millisecond) for resetting the offset. The value -1 indicates resetting to the latest offset.
	ResetTimestamp *int64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

type ResetConsumerGroupOffsetRequest struct {
	*tchttp.BaseRequest
	
	// TDMQ RocketMQ instance ID. It can be obtained from the API [DescribeFusionInstanceList](https://www.tencentcloud.comom/document/api/1493/106745?from_cn_redirect=1) or the console.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name. It can be obtained from [TopicItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#TopicItem) returned by the API [DescribeTopicList](https://www.tencentcloud.comom/document/api/1493/96030?from_cn_redirect=1) or from the console.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Timestamp (unit: millisecond) for resetting the offset. The value -1 indicates resetting to the latest offset.
	ResetTimestamp *int64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"`

	// Consumer group name. It can be obtained from [ConsumeGroupItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#ConsumeGroupItem) returned by the API [DescribeConsumerGroupList](https://www.tencentcloud.comom/document/api/1493/101535?from_cn_redirect=1) or from the console.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`
}

func (r *ResetConsumerGroupOffsetRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetConsumerGroupOffsetRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Topic")
	delete(f, "ResetTimestamp")
	delete(f, "ConsumerGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResetConsumerGroupOffsetRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetConsumerGroupOffsetResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ResetConsumerGroupOffsetResponse struct {
	*tchttp.BaseResponse
	Response *ResetConsumerGroupOffsetResponseParams `json:"Response"`
}

func (r *ResetConsumerGroupOffsetResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetConsumerGroupOffsetResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type RoleItem struct {
	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Whether to enable consumption.
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Whether to enable production
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Access Key
	AccessKey *string `json:"AccessKey,omitnil,omitempty" name:"AccessKey"`

	// Secret Key
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Role creation time. **It is a Unix timestamp (ms).**
	CreatedTime *int64 `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Role update time. **It is a Unix timestamp (ms).**
	ModifiedTime *int64 `json:"ModifiedTime,omitnil,omitempty" name:"ModifiedTime"`

	// Specifies the types of permissions. the default is to authorize by Cluster (Cluster: at the Cluster level; TopicAndGroup: topic and consumer group level).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`

	// Permission configuration in Topic and Group dimension.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DetailedRolePerms []*DetailedRolePerm `json:"DetailedRolePerms,omitnil,omitempty" name:"DetailedRolePerms"`
}

// Predefined struct for user
type RollbackMigratingTopicStageRequestParams struct {
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type RollbackMigratingTopicStageRequest struct {
	*tchttp.BaseRequest
	
	// Task ID. It can be obtained from [SmoothMigrationTaskItem](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SmoothMigrationTaskItem) returned by the API [DescribeSmoothMigrationTaskList](https://www.tencentcloud.comom/document/api/1493/119997?from_cn_redirect=1) or from the console.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Topic name. It can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Namespace. This parameter is valid only for migration to a 4.x cluster. The namespace can be obtained from [MigratingTopic](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#MigratingTopic) returned by the API [DescribeMigratingTopicList](https://www.tencentcloud.comom/document/api/1493/118007?from_cn_redirect=1) in Data Type.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

func (r *RollbackMigratingTopicStageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RollbackMigratingTopicStageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "TopicName")
	delete(f, "Namespace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RollbackMigratingTopicStageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RollbackMigratingTopicStageResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RollbackMigratingTopicStageResponse struct {
	*tchttp.BaseResponse
	Response *RollbackMigratingTopicStageResponseParams `json:"Response"`
}

func (r *RollbackMigratingTopicStageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RollbackMigratingTopicStageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type SmoothMigrationTaskItem struct {
	// Task ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Task name.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskName *string `json:"TaskName,omitnil,omitempty" name:"TaskName"`

	// Source cluster name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceClusterName *string `json:"SourceClusterName,omitnil,omitempty" name:"SourceClusterName"`

	// Destination cluster instance ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the network connection type. 
	// PUBLIC network. 
	// Specifies the VPC virtual private cloud. 
	// OTHER.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConnectionType *string `json:"ConnectionType,omitnil,omitempty" name:"ConnectionType"`

	// Source cluster NameServer address.	
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceNameServer *string `json:"SourceNameServer,omitnil,omitempty" name:"SourceNameServer"`

	// Task status.
	// Migration Configuration. specifies the migration Configuration.
	// SourceConnecting specifies connecting to source cluster.
	// MetaDataImport specifies metadata import.
	// EndpointSetup specifies the access point switchover.
	// Service migration is in progress.
	// Completed.
	// Cancelled: canceled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskStatus *string `json:"TaskStatus,omitnil,omitempty" name:"TaskStatus"`

	// Specifies the target cluster instance version.
	// 4 indicates version 4.x.
	// 5 indicates version 5.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"`
}

type SourceClusterGroupConfig struct {
	// Consumer group name. It can be obtained from [SourceClusterGroupConfig](https://www.tencentcloud.comom/document/api/1493/96031?from_cn_redirect=1#SourceClusterGroupConfig) returned by the API [DescribeSourceClusterGroupList](https://www.tencentcloud.comom/document/api/1493/118006?from_cn_redirect=1).
	// Note: This field may return null, indicating that no valid values can be obtained.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// Remarks
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies whether it has been imported. it is unavailable when used as an input parameter.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Imported *bool `json:"Imported,omitnil,omitempty" name:"Imported"`

	// Namespace, valid for 4.x clusters only.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Import status.
	// Unknown. specifies an unknown status.
	// Success.
	// Failure.
	// AlreadyExists. specifies the resource already exists.
	// 
	// Used as an output parameter.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ImportStatus *string `json:"ImportStatus,omitnil,omitempty" name:"ImportStatus"`

	// Namespace of 4.x. output usage.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NamespaceV4 *string `json:"NamespaceV4,omitnil,omitempty" name:"NamespaceV4"`

	// Consumer group name for version 4.x. output usage.
	// Note: This field may return null, indicating that no valid values can be obtained.
	GroupNameV4 *string `json:"GroupNameV4,omitnil,omitempty" name:"GroupNameV4"`

	// Complete namespace for version 4.x. output usage.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FullNamespaceV4 *string `json:"FullNamespaceV4,omitnil,omitempty" name:"FullNamespaceV4"`

	// Specifies whether it is ordered delivery. valid value: 5.0.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`
}

type SubscriptionData struct {
	// Instance ID
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicType *string `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Number of topic queues on a single node
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicQueueNum *int64 `json:"TopicQueueNum,omitnil,omitempty" name:"TopicQueueNum"`

	// Specifies the consumer group name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Online status
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsOnline *bool `json:"IsOnline,omitnil,omitempty" name:"IsOnline"`

	// Consumption type. valid values as follows:.
	// 
	// -PULL: specifies the pull consumption type.
	// -PUSH: specifies the push consumption type.
	// -POP: specifies the pop consumption type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumeType *string `json:"ConsumeType,omitnil,omitempty" name:"ConsumeType"`

	// Subscription rule.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"`

	// Filter type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpressionType *string `json:"ExpressionType,omitnil,omitempty" name:"ExpressionType"`

	// Subscription consistency. enumerated as follows:.
	// 
	// -Subscription consistency.
	// -Subscription inconsistency.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Consistency *int64 `json:"Consistency,omitnil,omitempty" name:"Consistency"`

	// Consumption heap
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// Last consumption progress update time. **It is a Unix timestamp (ms).**
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`

	// Maximum number of retries.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Whether it is sequential consumption
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumeMessageOrderly *bool `json:"ConsumeMessageOrderly,omitnil,omitempty" name:"ConsumeMessageOrderly"`

	// Specifies the consumption mode. 
	// BROADCASTING mode.
	// CLUSTERING: cluster mode.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageModel *string `json:"MessageModel,omitnil,omitempty" name:"MessageModel"`

	// List of clients with inconsistent subscriptions.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientSubscriptionInfos []*ClientSubscriptionInfo `json:"ClientSubscriptionInfos,omitnil,omitempty" name:"ClientSubscriptionInfos"`
}

type Tag struct {
	// Tag name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// Tag value
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagValue *string `json:"TagValue,omitnil,omitempty" name:"TagValue"`
}

type TagFilter struct {
	// Tag key name
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// Tag value list
	TagValues []*string `json:"TagValues,omitnil,omitempty" name:"TagValues"`
}

type TopicConsumeStats struct {
	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic type. valid values are as follows:.
	// 
	// -UNSPECIFIED: unspecified.
	// -NORMAL: standard message.
	// -FIFO: specifies sequential messaging.
	// -DELAY: specifies the delayed message.
	// -Specifies the TRANSACTION message.
	TopicType *string `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Number of topic queues per node
	QueueNum *int64 `json:"QueueNum,omitnil,omitempty" name:"QueueNum"`

	// Consumption heap
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// Subscription rule. `*` indicates subscription to all topics.
	SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"`

	// Last consumption progress update time. **It is a Unix timestamp (ms).**
	LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`
}

type TopicItem struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic type.
	// NORMAL: regular message.
	// FIFO: sequential messaging.
	// DELAY: delayed message.
	// TRANSACTION message.
	TopicType *string `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Number of queues
	QueueNum *int64 `json:"QueueNum,omitnil,omitempty" name:"QueueNum"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Cluster id of version 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterIdV4 *string `json:"ClusterIdV4,omitnil,omitempty" name:"ClusterIdV4"`

	// Namespace of 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NamespaceV4 *string `json:"NamespaceV4,omitnil,omitempty" name:"NamespaceV4"`

	// Topic name for version 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicV4 *string `json:"TopicV4,omitnil,omitempty" name:"TopicV4"`

	// Complete namespace for 4.x.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FullNamespaceV4 *string `json:"FullNamespaceV4,omitnil,omitempty" name:"FullNamespaceV4"`

	// Message retention time.
	MsgTTL *int64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// List of bound tags
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

type TopicStageChangeResult struct {
	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Success status
	Success *bool `json:"Success,omitnil,omitempty" name:"Success"`

	// Namespace. valid only for 4.x.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`
}

type VpcInfo struct {
	// VPC ID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}

type ZoneScheduledItem struct {
	// Availability zone ID.
	ZoneId *string `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// The value is true when there are scheduling tasks to be eliminated and no AZs for switchback; otherwise, it is false.
	NodePermWipeFlag *bool `json:"NodePermWipeFlag,omitnil,omitempty" name:"NodePermWipeFlag"`
}